package br.uvv.Service;

import java.io.Serializable;

import br.uvv.Dao.ClientePortalDAO;
import br.uvv.Dao.ClienteProjetoDAO;
import br.uvv.Dao.ConfigDescricaoEstendidaDAO;
import br.uvv.Dao.ProjetoDAO;
import br.uvv.Dao.UsuarioDAO;
import br.uvv.Model.ClientePortal;
import br.uvv.Model.ConfigDescricaoEstendida;
import br.uvv.Util.DAOException;
import br.uvv.Util.RNException;

public class ConfigDescricaoService implements Serializable {

	private static final long serialVersionUID = -6134028495333420094L;

	public ClientePortal selecionarClientePortal(Long id) throws RNException {
		try {
			ClientePortalDAO dao = new ClientePortalDAO();
			return (ClientePortal) dao.selecionarPorUsuarioResponsavel(id);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}

	public ConfigDescricaoEstendida selecionarConfiguracao(Long id) throws RNException {
		try {
			ConfigDescricaoEstendidaDAO dao = new ConfigDescricaoEstendidaDAO();
			return (ConfigDescricaoEstendida) dao.selecionarPorCliente(id);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}

	public Integer countUsuarios(Long id) throws RNException {
		try {
			UsuarioDAO dao = new UsuarioDAO();
			return dao.countPorCliente(id);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public Integer countClientes(Long id) throws RNException {
		try {
			ClienteProjetoDAO dao = new ClienteProjetoDAO();
			return dao.countPorCliente(id);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public Integer countProjetos(Long id) throws RNException {
		try {
			ProjetoDAO dao = new ProjetoDAO();
			return dao.countPorCliente(id);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public void salvarConfiguracao(ConfigDescricaoEstendida configuracaoInstance) throws RNException {
		try {
			ConfigDescricaoEstendidaDAO dao = new ConfigDescricaoEstendidaDAO();
			dao.salvar(configuracaoInstance);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}

}
